Skip to content

Alternative fix for #2506 that does not force dirs #2915

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 26, 2017

Conversation

nicolasstucki
Copy link
Contributor

As stated in #2506 lazy was droped to make it volatile.
It turns out that the dirs is not always used and epensive to compute.
In implicit_cache.scala only need dirs 1 out of 30 times.

As stated in scala#2506 `lazy` was droped to make it volatile.
It turns out that the dirs is not always used and epensive to compute.
In `implicit_cache.scala` only need dirs 1 out of 30 times.
@nicolasstucki
Copy link
Contributor Author

Before the change the compilation of implicit_cache.scala was

[info] # Fork: 1 of 1
[info] # Warmup Iteration   1: 1059.903 ms/op
[info] # Warmup Iteration   2: 283.733 ms/op
[info] # Warmup Iteration   3: 191.832 ms/op
[info] # Warmup Iteration   4: 149.429 ms/op
[info] # Warmup Iteration   5: 134.423 ms/op
[info] # Warmup Iteration   6: 125.551 ms/op
[info] # Warmup Iteration   7: 123.928 ms/op
[info] # Warmup Iteration   8: 119.833 ms/op
[info] # Warmup Iteration   9: 117.755 ms/op
[info] # Warmup Iteration  10: 116.391 ms/op
[info] # Warmup Iteration  11: 115.520 ms/op
[info] # Warmup Iteration  12: 115.374 ms/op
[info] Iteration   1: 113.433 ms/op
[info] Iteration   2: 113.728 ms/op
[info] Iteration   3: 112.091 ms/op
[info] Iteration   4: 112.314 ms/op
[info] Iteration   5: 112.110 ms/op
[info] Iteration   6: 110.954 ms/op
[info] Iteration   7: 111.178 ms/op
[info] Iteration   8: 110.409 ms/op
[info] Iteration   9: 110.301 ms/op
[info] Iteration  10: 110.900 ms/op
[info] Iteration  11: 110.561 ms/op
[info] Iteration  12: 110.406 ms/op
[info] Iteration  13: 109.992 ms/op
[info] Iteration  14: 109.057 ms/op
[info] Iteration  15: 112.272 ms/op
[info] Iteration  16: 110.239 ms/op
[info] Iteration  17: 110.021 ms/op
[info] Iteration  18: 109.759 ms/op
[info] Iteration  19: 109.258 ms/op
[info] Iteration  20: 108.351 ms/op
[info] 
[info] 
[info] Result "dotty.tools.benchmarks.Worker.compile":
[info]   110.867 ±(99.9%) 1.230 ms/op [Average]
[info]   (min, avg, max) = (108.351, 110.867, 113.728), stdev = 1.416
[info]   CI (99.9%): [109.637, 112.097] (assumes normal distribution)

and after the change it is

[info] # Run progress: 0.00% complete, ETA 00:00:32
[info] # Fork: 1 of 1
[info] # Warmup Iteration   1: 615.585 ms/op
[info] # Warmup Iteration   2: 167.406 ms/op
[info] # Warmup Iteration   3: 114.653 ms/op
[info] # Warmup Iteration   4: 88.515 ms/op
[info] # Warmup Iteration   5: 78.924 ms/op
[info] # Warmup Iteration   6: 71.977 ms/op
[info] # Warmup Iteration   7: 64.709 ms/op
[info] # Warmup Iteration   8: 62.001 ms/op
[info] # Warmup Iteration   9: 60.622 ms/op
[info] # Warmup Iteration  10: 59.975 ms/op
[info] # Warmup Iteration  11: 59.714 ms/op
[info] # Warmup Iteration  12: 59.271 ms/op
[info] Iteration   1: 58.471 ms/op
[info] Iteration   2: 57.703 ms/op
[info] Iteration   3: 57.742 ms/op
[info] Iteration   4: 56.736 ms/op
[info] Iteration   5: 57.359 ms/op
[info] Iteration   6: 57.416 ms/op
[info] Iteration   7: 56.887 ms/op
[info] Iteration   8: 56.355 ms/op
[info] Iteration   9: 55.775 ms/op
[info] Iteration  10: 56.008 ms/op
[info] Iteration  11: 55.405 ms/op
[info] Iteration  12: 56.055 ms/op
[info] Iteration  13: 55.338 ms/op
[info] Iteration  14: 54.632 ms/op
[info] Iteration  15: 54.794 ms/op
[info] Iteration  16: 54.907 ms/op
[info] Iteration  17: 54.407 ms/op
[info] Iteration  18: 54.940 ms/op
[info] Iteration  19: 55.266 ms/op
[info] Iteration  20: 54.450 ms/op
[info] 
[info] 
[info] Result "dotty.tools.benchmarks.Worker.compile":
[info]   56.032 ±(99.9%) 1.078 ms/op [Average]
[info]   (min, avg, max) = (54.407, 56.032, 58.471), stdev = 1.242
[info]   CI (99.9%): [54.954, 57.111] (assumes normal distribution)

@nicolasstucki
Copy link
Contributor Author

I ran the benchmarks using #2913

@nicolasstucki
Copy link
Contributor Author

I also ran the benchmark on the collection-strawman, the times there are barely affected. As expected from the analysis of the benchmarks in https://liufengyun.github.io/bench/

@liufengyun liufengyun merged commit 7703493 into scala:master Jul 26, 2017
@liufengyun liufengyun deleted the improve-#2506 branch July 26, 2017 10:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants